#ifndef STRINGCODECMANAGER_H
#define STRINGCODECMANAGER_H
#include <QString>

struct MatchUnit {
    int pos;
    int lengh;
    QString str;
};

class StringCodecManager
{
public:
    StringCodecManager();

    //md5编码,将原始字符串编码得到md5字符串.
    static QString md5Encode(QString str);
    // //将md5字符串,得到原始字符串.
    // static QString md5Decode(QString str);

    //base64,是可以还原的,用于将二进制数据用字符串在网络上进行传输.
    static QByteArray base64Encode(QByteArray ba);
    //base64字符串还原得到原始字符串.
    static QByteArray base64Decode(QString str);

    //
    static QString imapUtf7Encode(QString str);

    static QString imapUtf7Decode(QString str);
    static QString imapBase64Decode(QString str);
    static QString stringReplace(QString str,QRegularExpression reg,int capturePart,std::function<QString(QString)>replacer);
    static void printByteArrayInfo(QByteArray ba,int base = 10);
};


#endif // STRINGCODECMANAGER_H
